1. Field of the Invention
This invention relates generally to the field of network services. More particularly, the invention relates to an improved architecture for network content distribution.
2. Description of the Related Art
A traditional network caching system, as illustrated in FIG. 1, includes a plurality of clients 130-133 communicating over a local area network 140 and/or a larger network 110 (e.g., the Internet). The clients 130-133 may run a browser application such as Netscape Navigator(trademark) or Microsoft Internet Explorer(trademark) which provides access to information on the World Wide Web (xe2x80x9cthe Webxe2x80x9d) via the HyperText Transport Protocol (xe2x80x9cHTTPxe2x80x9d), or through other networking protocols (e.g., the File Transfer Protocol, Gopher . . . etc).
The browser on each client 130-133 may be configured so that all requests for information (e.g., Web pages) are transmitted through a local cache server 115, commonly referred to as a xe2x80x9cproxy cache.xe2x80x9d When a client 130 requests information from a remote Internet server 120, the local proxy cache 115 examines the request and initially determines whether the requested content is xe2x80x9ccacheablexe2x80x9d (a significant amount of Internet content is xe2x80x9cnon-cacheablexe2x80x9d). If the local proxy cache 115 detects a non-cacheable request, it forwards the request directly to the content source (e.g., Internet server 120). The requested content is then transmitted directly from the source 120 to the client 130 and is not stored locally on the proxy cache 115.
By contrast, when the proxy cache 115 determines that a client 130 content request is cacheable, it searches for a copy of the content locally (e.g., on a local hard drive). If no local copy exists, then the proxy cache 115 determines whether the content is stored on a xe2x80x9cparentxe2x80x9d cache 117 (located further upstream in the network relative to the Internet server 120) or a xe2x80x9csiblingxe2x80x9d cache 116 (located in substantially the same hierarchical position as the proxy cache relative to the Internet server 120 from which the content was requested).
If a cache xe2x80x9chitxe2x80x9d is detected on either neighboring cache 116, 117, the requested content is retrieved from that cache, transmitted to the client 130, and is stored locally on the proxy cache 115 to be available for future requests by other local clients 131-133. If a cache xe2x80x9cmissxe2x80x9d occurs, however, the content is retrieved from the source Internet server 120, transmitted to the client 130 and a copy is stored locally on the proxy cache 115, and possibly also the parent cache 117, to be available for future client requests.
One problem which exists with the foregoing arrangement, however, is that caching content based on a xe2x80x9cfirst missxe2x80x9d algorithm (i.e., caching content locally as soon as it is requested) is extremely inefficient and does not necessarily result in a greater future cache hit ratio. For example, the foregoing system may replace more popular content with less popular content as long as the less popular content was requested more recently Moreover, prior systems do not factor in other variables (e.g., content size, content type, . . . etc) which may dramatically affect caching performance. While these prior systems may be adequate for caching Web pages and other relatively small network files, they are extremely inefficient at caching larger content types (e.g., multimedia files) which consume significantly more storage capacity and network bandwidth. For example, implementing a first-miss algorithm with multimedia files may result in continual replacement of files at the cache site due to limited storage capacity. Accordingly, what is needed is a more intelligent system and method for caching popular network content.